/*
脚本说明: 查找指定节点下的权限类型
基本节点就返回所有可能的权限类型，不管是不是普通用户。
扩展节点，如果dev,admin用户(组)就返回扩展节点下所有权限类型，否则返回自己拥有的权限类型
程序员:
*/

//脚本唯一关键字,通过该关键字找到对应脚本，每个脚本必须有该描述。
var v_script_id = 'authkindsetter_1';
//脚本状态,0:该脚本不许执行，1:该脚本可以执行
var v_status = '1';

//脚本逻辑写在run语句之间
if (run && action.getAuthority().is(5,"9")){
	var user = action.getSession().getAttribute("user");
	var authid = action.form.getInteger('authid');
	var mode =  action.form.getInteger('mode');
	//基本节点:显示所有权限类型。
	if(mode ==0 ){
			action.vars.put(action.V_TABLE_NAME,'h_auth_kinds');//指定获取数据的表名
			action.vars.put(action.V_COLUMNS, 'kind , name as kindname' );
			action.vars.put(action.V_MAX_LINE,'20');//每页显示多少条
			action.vars.put(action.V_CONDITION, ' order by id desc');//数据检索条件
			action.vars.put(action.V_OUTPUT_FILE_FORMAT,'3');
	}
	
	//扩展节点
	if(mode ==1 ){
		if(user.getRolekind()<3){
		//显示该节点下所有指定的权限类型
			action.vars.put(action.V_TABLE_NAME,'v_auth_id_kinds');//指定获取数据的表名
			action.vars.put(action.V_MAX_LINE,'20');//每页显示多少条
			action.vars.put(action.V_CONDITION, 'where authid = ' + authid + '  order by id desc');//数据检索条件
			action.vars.put(action.V_OUTPUT_FILE_FORMAT,'3');
		}else{
			//显示该节点下，用户及所属角色已拥有的权限类型
			var condition = ' where authid = ' + authid ;//+ ' and pcolvalue=' + pcolvalue ; 
			if (user.getRoleids('roleid','or') == null){
				condition += ' and userid = '+ user.getId() ;
			}else{
				condition += ' and (' + user.getRoleids('roleid','or') + ' or userid = '+ user.getId() +')';
			}
			action.vars.put(action.V_COLUMNS, 'distinct(kind),kindname' );//必须。因为存在用户有“添加”，所属角色也有，这样搜出来结果就有两个“添加”
			action.vars.put(action.V_CONDITION, condition );//数据检索条件
			action.vars.put(action.V_TABLE_NAME,'v_auth_all');//指定获取数据的表名
		}
	}
}